import { IconTypeConst, IconTypeConstType, IconPropsType } from '../../../components'
import { IconType } from '../../../common'

/**
 * 生成 {@link IconType} 类型的图标对象
 *
 * @param {string} iconName 图标名称
 * @param {IconTypeConstType} iconType 图标类型（渲染图标的组件）
 * @param {IconPropsType["iconProps"]} iconProps 图标参数（渲染图标的组件的组件参数）
 * @returns {IconType} {@link IconType} 类型的图标对象
 */
export const genIcon = ({
  iconName,
  iconType = IconTypeConst.ICONIFY,
  iconProps
}: {
  iconName: string
  iconType?: IconTypeConstType
  iconProps: IconPropsType['iconProps']
}): IconType => {
  return {
    iconName,
    iconType,
    iconProps
  }
}

export type GenIconType = typeof genIcon
